// --------------------------------------------------------------------------------------------------------------------
// <copyright file="TransactionalQuickFixBulbItem.cs" company="StyleCop for ReSharper Development Team">
//   Copyright (c) StyleCop for ReSharper Development Team. All rights reserved.
// </copyright>
// <summary>
//   Defines the TransactionalQuickFixBulbItem type.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace StyleCop.For.ReSharper.BulbItems.Framework
{
    #region Using Directives

    using JetBrains.DocumentModel;

    #endregion

    /// <summary>
    /// Abstract Transactional QuickFix Bulb Item for changes than need to be wrapped in a transaction.
    /// </summary>
    public abstract class TransactionalQuickFixBulbItem : TransactionalBulbItem
    {
        #region Properties

        /// <summary>
        /// Gets or sets the document range to be used by the BulbItem.
        /// </summary>
        /// <value>
        /// The document range.
        /// </value>
        public DocumentRange DocumentRange { get; set; }

        /// <summary>
        /// Gets or sets the current file name.
        /// </summary>
        /// <value>
        /// The file name.
        /// </value>
        public string FileName { get; set; }

        /// <summary>
        /// Gets or sets the line number to be used by the BulbItem.
        /// </summary>
        /// <value>
        /// The line number.
        /// </value>
        public int LineNumber { get; set; }

        /// <summary>
        /// Gets or sets the prefix spacing.
        /// </summary>
        /// <value>
        /// The prefix.
        /// </value>
        public string Prefix { get; set; }

        /// <summary>
        /// Gets or sets the suffix spacing.
        /// </summary>
        /// <value>
        /// The suffix.
        /// </value>
        public string Suffix { get; set; }

        /// <summary>
        /// Gets or sets a string to format spacing .
        /// </summary>
        /// <value>
        /// The target.
        /// </value>
        public string Target { get; set; }

        #endregion
    }
}